<?php
$this->breadcrumbs()->addPage('Tramitação', 'entrada');
$this->breadcrumbs()->addPage('Encaminhar Processos');
echo $this->breadcrumbs()->render();

echo $this->pagenav()->openList();
echo $this->pagenav()->defaultHelperLinks();
echo $this->pagenav()->closeList();
?>

<div id="article">
    <div class="notice">
        Obs.: A "prioridade" e a "data prazo" continuarão os mesmos para cada processo.
    </div>
    <form action="" method="post" id="target">
        <?php
        $htmlProcessos = '</br><ul class="marked">';
        foreach ($this->processos as $processo) {
            echo '<input type="hidden" class="marked" name="processos[]" value="' . $processo->id . '"/>';
            $htmlProcessos .= '<li>' . $processo->nomeDescritivo . '</li>';
        }
        $htmlProcessos .= '</ul>';

        echo $this->fieldList()->open();
        echo $this->fieldList()->text('Processos', $htmlProcessos);
        echo $this->protocoloSelect('Destino', 'destinoId', $this->listaProtocolos, $this->origemId, null, array('required' => true));
        echo $this->fieldList()->textarea('Despacho', 'despacho', null, array('required' => true));
        echo $this->protocoloSelectMultiple('Com Cópia', 'copias', $this->listaProtocolos, $this->origemId);
        echo $this->fieldList()->close();

        echo $this->buttonlist()->open();
        echo $this->buttonlist()->button('Encaminhar', null, array(), array("action" => $this->simpleUrl('encaminhar-tramitar', 'processos-ajax')));
        echo $this->buttonlist()->resetbutton();
        echo $this->buttonlist()->close(true);
        ?>
    </form>
</div>

<?php
$js = '
    $(function(){
        var BASE_URL = "' . $this->baseUrl() . '"
            
        $("button").live("click", function(){
            var form_action_ajax = $(this).attr("action")
            
            if (form_action_ajax != undefined) {
                var selecao_destino = $("select#destinoId_children").length == 1
                var resposta_despacho = $("textarea.required.valid").length == 1
                
                if (resposta_despacho && selecao_destino) {
                    var processos_id = []
                    
                    $("input.marked").each(function(index){
                        processos_id.push($(this).val())
                    })
                    
                    processos_id.reverse()
                    
                    var chamar_ajax = true
                    var processo_id_atual = processos_id.pop()
                    var respostas_formulario = $("#target").serializeArray()
                    respostas_formulario.push({"name": "idProcesso", "value": processo_id_atual, "caixaEntradaId" : ""})
                    var loop_ajax = setInterval(function(){
                        if (processo_id_atual == undefined) {
                            clearInterval(loop_ajax);
                            window.location = BASE_URL + "/analise/encaminhar-ok"
                            
                            return false
                        } 
                        
                        if (chamar_ajax) {
                            chamar_ajax = false
                            var linha_processo = $("ul.marked li:first")
                            
                            $.ajax({
                                type: "POST",
                                data: respostas_formulario,
                                url: form_action_ajax,
                                beforeSend: function()
                                {
                                    linha_processo.prepend("<img style=\"float: left; margin-right: 5px;\" id=\"indicator\" src=\"' . $this->baseUrl() . '/img/indicator.gif\">");
                                    linha_processo.attr("style", "opacity:0.4;")
                                },
                                success: function(retorno)
                                {
                                    linha_processo.remove()
                                    processo_id_atual = processos_id.pop()
                                    respostas_formulario.push({"name": "idProcesso", "value": processo_id_atual, "caixaEntradaId" : retorno})
                                    chamar_ajax = true
                                },
                                error: function(retorno)
                                {
                                    var numero_processo = linha_processo.text().match(/\d+/g).join("_");
                                    window.location = BASE_URL + "/analise/encaminhar-falha/np/" + numero_processo

                                    return false
                                }
                            });

                        }
                    }, 200);
                    
                    return false;
                }
            }
        });
    });
    ';
$this->headScript()->appendScript($js);
?>